package plus.easydo.server.user.mp.qo;

import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.ToString;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import plus.easydo.starter.mybatis.plus.qo.MpBaseQo;

/**
 * 系统日志查询对象
 * 
 * @author laoyu
 * @date 2021-12-27 16:07:48
 */
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class SystemLogQo extends MpBaseQo {

    /** 请求id */
    private Long requestId;

    /** 请求方式 */
    @ApiModelProperty(value = "请求方式")
    private String requestMethod;

    /** 请求路径 */
    @ApiModelProperty(value = "请求路径")
    private String requestPath;

    /** IP地址 */
    @ApiModelProperty(value = "IP地址")
    private String requestIp;

    /** 请求地址 */
    @ApiModelProperty(value = "请求地址")
    private String requestUri;

    /** 设备标识 */
    @ApiModelProperty(value = "设备标识")
    private String requestSign;

    /** 请求参数 */
    @ApiModelProperty(value = "请求参数")
    private String requestParams;

    /** 模块名 */
    @ApiModelProperty(value = "模块名")
    private String moduleName;

    /** 类名 */
    @ApiModelProperty(value = "类名")
    private String className;

    /** 方法 */
    @ApiModelProperty(value = "方法")
    private String methodName;

    /** 方法入参 */
    @ApiModelProperty(value = "方法入参")
    private String methodParams;

    /** 方法返回值 */
    @ApiModelProperty(value = "方法返回值")
    private String methodReturn;

    /** 响应状态 */
    @ApiModelProperty(value = "响应状态")
    private String responseStatus;

    /** 开始时间 */
    @ApiModelProperty(value = "开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime beginTime;

    /** 执行总时间 */
    @ApiModelProperty(value = "执行总时间")
    private Long execTime;

    /** 请求用户id */
    @ApiModelProperty(value = "请求用户id")
    private String optionUserId;

    /** 请求用户名称 */
    @ApiModelProperty(value = "请求用户名称")
    private String optionUserName;

    /** 异常信息 */
    private String exceptionInfo;

}
